/*************************************************************************
	> File Name: digit.c
	> Author: zhangxu 
	> Mail: walrus1983@126.com
	> Created Time: 二  7/ 9 13:30:33 2024
 ************************************************************************/

#include<stdio.h>

void printDigit(int x) {
	for(int i = 31; i >= 0; i--) {
		printf("%c", (x & (1 << i)) ? '1' : '0');
	}
	printf("\n");
	return ;
}

long long Pow(int x, int y) {
	if(y == 0) return 1;
	return x * Pow(x, y - 1);
}
int main() {
	// int a = 5, b = 3;
	// printf("a = ");
	// printDigit(a);
	// printf("b = ");
	// printDigit(b);
	// printf("a & b = ");
	// printDigit(a & b);
	// printf("a | b= ");
	// printDigit(a | b);
	// printf("a ^ b= ");
	// printDigit(a ^ b);
	// printf("- 5 = ");
	// printDigit(~a + 1);
	int x = 0, cnt = 0;
	scanf("%d", &x);
	for(int i = 0; i < 32; i++) {
		if(x & (1 << i)) break;
		cnt += 1;
	}
	printf("%lld\n", Pow(2, cnt));
	printf("x = ");
	printDigit(x);
	printf("-x & x =");
	printDigit(-x & x);
	return 0;
}
